Databases are among the most important assets of a company. Examples of databases are customer records (e.g., name, address, phone number, credit card number, etc.), accounting data (e.g., account receivable and account payable), and mailing lists (for soliciting new customers). A company would plunge into financial crisis if its databases are destroyed. For example, the company will not be able to collect its bills if its account receivable files are erased. Thus, the value of the databases of a company could be higher than the value of its tangible assets.
A database is a collection of data organized in a predetermined manner. Typically, the data is arranged into a plurality of records having identical structure. Each record contains one or more fields (e.g., name, address, and phone numbers) for holding appropriate data. In order to retrieve data quickly, a database is typically associated with an index which contains a table of keys representing every record in the database. The keys typically correspond to the data in a predetermined field (e.g., name) of the records. The keys are arranged in a user-defined criterion (e.g., ascending or descending alphabetical order). Generally, records are stored in the database in the order they are entered. In most cases, records are entered without any particular order, and can be considered random. However, the index is re-arranged in accordance with the criterion every time when one or a set of records are entered. When it is desirable to locate a record, the index is searched first. Because the index is well-organized, the search time is very short. The correct record can be easily found based on the information obtained from the search result. If the index is not used, the entire database (which could be many times the size of the index) needs to be searched.
The sizes of these databases are typically very big (several million bytes). The number of rows and columns are very large. There could be many indexes associated with a database. Further, the search "engines" are very complex because they have to handle the huge databases and work with all the indexes. As a result, even in the age of personal computers, these databases are best handled by mainframe computers.
There are "free-form" databases in which the data is not organized in any predetermined manner while allowing every words in the database to be searched. This type of databases are often used by on-line information providers (such as DIALOG.TM. DOW JONES.TM. WESTLAW.TM. and LEXIS.TM. which provide full-text searching capability to newspapers, magazies, court decisions, etc. In this type of databases, all the words in the text are indexed. The "free-form" databases allow for efficient retrieval of data, but is typically not flexible and very inefficient in utilizing computer resources (e.g., the index files are typically very large).
Thus, there is a need to design a simple, fast, flexible and efficient database system.